#include <cstdio>

int n, m, tot, i;
char p[10001], t[10001];
int a[10000], inicio[10000];

void prefix(){
	int k=0;
	for(i=0;i<m;i++)a[i]=0;
	
	for(i=1;i<m;i++){
		while(  (k>0)&&(p[k]!=p[i])  )
			k=a[k];
		if(p[k]==p[i])
			k++;
		a[i]=k;
	}
}

void process(){
	int q=0;
	tot=0;
	prefix();
	for(int i=0;i<n;i++){
		while(  (q>0)&&(p[q]!=t[i])  )
			q=a[q];
		if(p[q]==t[i])
			q++;
		if(q==m){
			inicio[tot++]=i;
			q=a[q];
		}
	}
	for(int i=0;i<tot;i++){
		printf("%d %d\n", inicio[i]-m+1, inicio[i]);
	}
	printf("%d\n\n", tot);
}



int main(){
	freopen("L4Q1.in","r",stdin);
	freopen("L4Q1.out","w",stdout);
	int x;
	scanf("%d", &x);
	while(x--){
		scanf("%d %d %s %s", &m, &n, p, t);
		process();
	}
}
